from pyDes import triple_des, PAD_PKCS5
import binascii
def des3_encrypt(s, key):
k = triple_des(key=key, padmode=PAD_PKCS5)
en = k.encrypt(s)
endata = binascii.hexlify(en).decode()
return endata # 有时会对 endata 进行再编码或者加密
def des3_decrypt(s, key):
# 在此对上面的再编码或者加密进行反向还原,然后再进行3Des解密
s = binascii.unhexlify(s)
k = triple_des(key=key, padmode=PAD_PKCS5)
en = k.decrypt(s)
return en.decode()
if __name__ == '__main__':
key = 'gwMTY4MDE1NzI2ODg04NDAxN'
text = '0dc9b6b0b6504606acf22d8a61f8df4d'
data = '5399aff647c976dd0253c3f79aa251fabb675fce92bdcbb6bad6ef517a8369af70c32d3fdd524a22'
print(des3_encrypt(text, key))
print(des3_decrypt(data, key)) 记录一个网站的3Des加密 from pyDes import triple_des, PAD_PKCS5
import binascii
import base64
def des3_encrypt(s, key):
k = triple_des(key=key, padmode=PAD_PKCS5)
en = k.encrypt(s)
print(en)
endata = binascii.hexlify(en).decode()
print(endata)
return base64.b64encode(binascii.unhexlify(endata)).decode()
def des3_decrypt(s, key):
s = binascii.hexlify(base64.b64decode(s.encode()))
print(s)
s = binascii.unhexlify(s)
print(s)
k = triple_des(key=key, padmode=PAD_PKCS5)
en = k.decrypt(s)
print(en)
print(en.decode()) # 注意该处会少8位 有哪位大佬可以在评论区解答一下 谢谢
return ''.join([chr(i) for i in list(en) if i!= 8])
if __name__ == '__main__':
key = 'gwMTY4MDE1NzI2ODg04NDAxN' # Invalid triple DES key size. Key must be either 16 or 24 bytes long
text = '123456789abcdefghijklmnopqestuvw'
data = 'd60LEn5i3kuxQUQGQDf6fJrQdKxZvhKQxeOVncDbFLhwwy0/3VJKIg=='
print(des3_encrypt(text, key))
print(des3_decrypt(data, key))
|